//WEB SOCKET

var IP = "192.168.33.51";
var PUERTO = "9300";
MENSAJES = {
    MOSTRARFICHA : "0",
    MOSTRARDISPARADOR: "1",
    ACTUALIZARPOSICIONDISPARADOR: "2",
    ACTUALIZARPOSICIONFICHA: "3",
    RECIBIRDISPARO: "4",
    RECIBIRCOLOCADA: "5",
    ENVIARNOMBRE: "6",
    SALAOCUPADA: "7",
    RECIBIRTURNO: "8",
    SINCROPOSFICHA: "9",
    FICHAQUIETA: "10",
    TURNOJUGADOR: "11",
    INICIALIZAR: "12",
    ENVIARTURNO: "13",       //en realidad recibe el numero de turno
    EMPEZAR: "14"
}

var cacona=cc.Class.extend({
    wsUri: "ws://" + IP + ":" + PUERTO,
    output:null,
    websocket:null,
    mesa:null,

    ctor:function() {
        //ESTO SIRVE PARA ALGO ?????????????????????????????????????????????????
        this.output = document.getElementById("output");
    },
    setMesa:function(m){
        this.mesa = m;
        WebSocket.prototype.mesa = this.mesa;           //ACA ESTA LA MAGIA
        this.websocket = new WebSocket(this.wsUri);
        this.websocket.onopen = this.onOpen;
        this.websocket.onclose = this.onClose;
        this.websocket.onmessage=this.onMessage;
        this.websocket.onerror = this.onError;
    },
    onOpen: function (evt) {
        //this.send("Websocket Abierto"); //Aca le envio el mensaje
        this.mesa.wsEnviarNombreJugador($("#nombreJugador").val());
    },

    onClose: function (evt) {
        //cc.log("onClose");
    },

    onMessage: function (evt) {
        cc.log("RECIBI MENSAJE: " + evt.data );
        var mensaje1=evt.data.replace('"','');
        var mensaje2=mensaje1.replace('"','');
        var mensaje = mensaje2.split(";");

        var m =  mensaje[0];

        switch (m) {
            case MENSAJES.MOSTRARFICHA:
                cc.log("haber si mueve");
                this.mesa.wsRecibirMostrarFicha();
                break;
            case MENSAJES.MOSTRARDISPARADOR:
                this.mesa.wsRecibirMostrarDisparador(mensaje[1],mensaje[2]);
                break;
            case MENSAJES.ACTUALIZARPOSICIONDISPARADOR:
                this.mesa.wsRecibirActualizacionPosicionDisparador(mensaje[1],mensaje[2]);
                break;
            case MENSAJES.ACTUALIZARPOSICIONFICHA:
                this.mesa.wsRecibirActualizacionPosicionFicha(mensaje[1],mensaje[2]);
                break;
            case MENSAJES.RECIBIRDISPARO:
                this.mesa.wsRecibirDisparo(mensaje[1],mensaje[2]);
                break;
            case MENSAJES.RECIBIRCOLOCADA:
                this.mesa.wsRecibirColocada(mensaje[1],mensaje[2]);
                break;
            case MENSAJES.ENVIARNOMBRE:
                this.mesa.wsRecibirNombres(mensaje[1],mensaje[2],mensaje[3]);
                break;
            case MENSAJES.SALAOCUPADA:
                //this.mesa.wsRecibirNombres(mensaje[1],mensaje[2]);
                alert('SALA LLENA');
                var scene = cc.Scene.create();
                var layer = new MainController();
                scene.addChild(layer);
                cc.Director.getInstance().replaceScene(scene);
                break;
            case MENSAJES.RECIBIRTURNO:
                this.mesa.wsRecibirMeToca(mensaje[1]);
                break;
            case MENSAJES.INICIALIZAR:
                this.mesa.actualizarPuntajes();
                break;
            case MENSAJES.EMPEZAR:
                this.mesa.inicializar();
                break;
            case MENSAJES.SINCROPOSFICHA:
                this.mesa.wsRecibirSincroPosFicha(mensaje);
                break;
            case MENSAJES.ENVIARTURNO:
                this.mesa.setTurno(mensaje[1]);
                break;
            default:
                //cc.log("RECIBI MENSAJE: " + evt.data  + "m=" + m);
        }//FIN SWITCH

    },

    onError: function (evt) {
        cc.log("ERROR: " + evt.toString() );
    },

    doSend :function (message) {
        cc.log("Envie: " + message);
        this.websocket.send(message);
    },

    writeToScreen :function (message) {
        var pre = document.createElement("p");
        pre.style.wordWrap = "break-word";
        pre.innerHTML = message;
    }
});
//WEB SOCKET

